import React, {Component} from 'react'
import PropTypes from 'prop-types'
import './index.css'

export default class Hello extends Component {

  static propTypes = {
    todos: PropTypes.array.isRequired,
    checkAllTodo: PropTypes.func.isRequired,
    clearAllDnoe: PropTypes.func.isRequired
  }

  // 全选checkbox的回调
  handleCheckAll = (event) => {
    this.props.checkAllTodo(event.target.checked)
  }
  // 清除已完成任务的回调
  handleClearAllDown = () => {
    this.props.clearAllDnoe()
  }

  render() {
    const {todos} = this.props

    // 已完成的个数
    // 在合适的时候发出合适的请求，拿回合适的数据，展示合适的位置 > 6
    const doneCount = todos.reduce((pre, current)=>{
      // console.log('@', pre, current) // pre 上一次的返回值
      return pre + (current.done ? 1 : 0)
    }, 0)
    // 总数
    const total = todos.length

    // defaultChecked 在第一次指定的时候有作用
    return (
      <div className="todo-footer">
        <label>
          <input type="checkbox" checked={doneCount === total && total !== 0 ? true : false} onChange={this.handleCheckAll} />
        </label>
        <span>
          <span>已完成{doneCount}</span> / 全部{total}
        </span>
        <button className="btn btn-danger" onClick={this.handleClearAllDown}>清除已完成任务</button>
      </div>
    )
  }
}